Standard ML
オンラインの実行環境
左上の「Edior」から試すことができる
なんかでかそうなので、インスコしたくない気持ちになったmrsekut.icon 拡張子は、.sml
.smiというファイルもコンパイル時に必要?
文法
code:ml
(* 変数定義 *)
val x = 42;
(* =は等価比較演算子でもある *)
x = 42;
(* local変数 *)
let val x = 42 in 2 * x end;
(* 関数定義と呼び出し *)
fun hello name = print ("Hello " ^ name ^ "!\n");
hello "World";
(* リストと要素追加 *)
0::y;
(* 例外はhandleで捕捉 *)
1 div 0 handle Div => 100;
(* 型作成 *)
datatype week = Sun | Mon | Tue | Wed | Thu | Fri | Sat
datatype person = Person of string * int
(* パターンマッチ *)
fun isWeekend w = case w of
Sun => true
| Sat => true
| other => false